package com.jadows.tdog.message;

import com.jadows.tdog.message.details.AbstractMessage;
import io.netty.channel.Channel;
import jakarta.annotation.Nullable;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 请求包装
 */
@Data
@Accessors(chain = true)
public class WsReqWrapper<T extends AbstractMessage> implements Serializable {
    /**
     * 请求的action
     */
    private String action;

    /**
     * 当前请求序列号
     */
    private String seq;

    /**
     * 每个请求包具体的数据，类型不同结果不同
     */
    private T data;


    /**
     * 消息发送者的channel
     * 不序列化
     * 可以为空
     */
    @Nullable
    private transient Channel channel;

}
